package com.sky.annotation;

/**
 * @Auther: zh
 * @Date: 2025/5/29 - 05 - 29 - 18:36
 * @Description: com.sky.annotation
 * @version: 2.1
 */

import com.sky.enumeration.OperationType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定义注解，用于标识某个方法需要公共自动填充
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoFill {

    //实现思路：
    //1、自定义注解AutoFill，用于标识需要进行公共字段自动填充的方法。
    //然后自定义切面类AutoFillAspect，统一拦截加入了AutoFill注解的方法，通过反射为公共字段赋值。
    //在Mapper的方法上加入AutoFill注解。
    //技术点：枚举，注解，AOP，反射。

    //数据库操作类型：UPDATE  INSERT
    OperationType value();
}
